const fileService = require("../service/file.service")
const userService = require("../service/user.service")
const { SERVER_HOST, SERVER_PORT } = require('../config/server')

class FileController {
  async create(ctx, next) {
    // 1.获取请求参数
    const { filename, mimetype, size } = ctx.request.file

    // 2.获取token中登录的用户信息
    // 动态由于谁发布 token-> id、name
    const { id: user_id } = ctx.user

    // 3.将参数传递给数据库操作中间件,进行数据库操作
    let res = await fileService.create(filename, mimetype, size, user_id)

    // 4.将图片信息保存到file表中
    // http://localhost:8000/users/avatar/9
    let res2 = await userService.updateUserAvatarUrl(`${SERVER_HOST}:${SERVER_PORT}/users/avatar/${user_id}`,user_id)

    ctx.body = {
      msg: '上传文件成功',
      file: ctx.request.file,
      data: res
    }
  }
}

module.exports = new FileController()